/* Araujo Heiker CI. 19726991
 * Goyo Willandher CI.20666542
 * Rodriguez Rafael CI.20009872
 * Williams Roman CI.20016812 
 * Morett Gilberth CI.20929667*/

package vista;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

import javax.swing.WindowConstants;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;

/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class PantallaDeposito extends javax.swing.JFrame {
	private JPanel jPanelDeposito;
	private JLabel jLabelTitulo;
	private JButton btnModificarDeposito;
	private JTable tblDeposito;
	private JScrollPane jScrollTablaDeposito;
	private JButton btnEliminarDeposito;
	private JLabel lblImagen;
	private JButton btnIncluirDeposito;

	/**
	* Auto-generated main method to display this JFrame
	*/
	
	public PantallaDeposito() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			this.setTitle("Sistema de Almacen - Depositos");
			{
				jPanelDeposito = new JPanel();
				getContentPane().add(jPanelDeposito, BorderLayout.CENTER);
				jPanelDeposito.setLayout(null);
				jPanelDeposito.setPreferredSize(new java.awt.Dimension(473, 284));
				jPanelDeposito.setBorder(BorderFactory.createCompoundBorder(
						null, 
						null));
				jPanelDeposito.setBackground(new java.awt.Color(255,255,255));
				{
					jLabelTitulo = new JLabel();
					jPanelDeposito.add(jLabelTitulo);
					jLabelTitulo.setText("Registro de Depósitos");
					jLabelTitulo.setBounds(258, 22, 164, 15);
					jLabelTitulo.setFont(new java.awt.Font("Bitstream Charter",0,16));
				}
				{
					btnIncluirDeposito = new JButton();
					jPanelDeposito.add(btnIncluirDeposito);
					btnIncluirDeposito.setBounds(117, 292, 93, 31);
					btnIncluirDeposito.setIcon(new ImageIcon(getClass().getClassLoader().getResource("imagen/Boton_Incluir2.jpg")));
					btnIncluirDeposito.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
					btnIncluirDeposito.setRolloverIcon(new ImageIcon(getClass().getClassLoader().getResource("imagen/Boton_Incluir.jpg")));
					btnIncluirDeposito.setName("Incluir");
					btnIncluirDeposito.setActionCommand("Incluir");
				}
				{
					lblImagen = new JLabel();
					jPanelDeposito.add(lblImagen);
					lblImagen.setBounds(0, 22, 52, 359);
					lblImagen.setIcon(new ImageIcon(getClass().getClassLoader().getResource("imagen/fondo7.jpg")));
				}
				{
					btnModificarDeposito = new JButton();
					jPanelDeposito.add(btnModificarDeposito);
					btnModificarDeposito.setBounds(270, 292, 93, 31);
					btnModificarDeposito.setIcon(new ImageIcon(getClass().getClassLoader().getResource("imagen/Boton_Modifi2.jpg")));
					btnModificarDeposito.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
					btnModificarDeposito.setRolloverIcon(new ImageIcon(getClass().getClassLoader().getResource("imagen/Boton_Modifi.jpg")));
					btnModificarDeposito.setActionCommand("Modificar");
				}
				{
					btnEliminarDeposito = new JButton();
					jPanelDeposito.add(btnEliminarDeposito);
					btnEliminarDeposito.setBounds(416, 292, 93, 31);
					btnEliminarDeposito.setIcon(new ImageIcon(getClass().getClassLoader().getResource("imagen/Boton_Eliminar2.jpg")));
					btnEliminarDeposito.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
					btnEliminarDeposito.setRolloverIcon(new ImageIcon(getClass().getClassLoader().getResource("imagen/Boton_Eliminar.jpg")));
					btnEliminarDeposito.setActionCommand("Eliminar");
				}
				{
					jScrollTablaDeposito = new JScrollPane();
					jPanelDeposito.add(jScrollTablaDeposito);
					jScrollTablaDeposito.setBounds(64, 56, 529, 152);
					jScrollTablaDeposito.setBackground(new java.awt.Color(255,255,255));
					jScrollTablaDeposito.setViewportView(getTblDeposito());
				}
			}
			pack();
			this.setSize(622, 384);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}
	// Agregamos los listener o escuchadores encargados de estar pendientes
	// de los eventos ocurridos sobre los respectivos botones agregados
	public void agragarListener(ActionListener accion){
		btnIncluirDeposito.addActionListener(accion);
		btnEliminarDeposito.addActionListener(accion);
		btnModificarDeposito.addActionListener(accion);
		
	}
	public void mostrarMensaje(String mensaje){
		JOptionPane.showMessageDialog(this, mensaje);
	}
	//Metodo que permite cargar todos los depositos cuyo estatus sea "A" en la tabla de deposito
	public void cargarListado(AbstractTableModel atm) {
		tblDeposito.setModel(atm);
	}
	// Metodo que permite conocer la cantidad de filas que tiene la tabla de Deposito
	public int getCantidadFilas() {
		return this.tblDeposito.getRowCount();
	}
	//Metodo que permite agregar una fila a la tabla Deposito
	public void agregarFilaDeposito(Vector<String> deposito) {
		
		DefaultTableModel modelop = (DefaultTableModel) this.tblDeposito.getModel();
		modelop.addRow(deposito);
	}
	//Permite obtener el codigo de un deposito que el usuario haya seleccionado en la tabla
	public String obtenerCodigoDepositoFilaSeleccionada(){
		int fila = tblDeposito.getSelectedRow();
		String codProducto = (String) tblDeposito.getModel().getValueAt(fila, 0);
		return codProducto;
	}
	//Metodo que permite conocer la cantidad de filas que han sido seleccionadas por el usuario
	public int nroFilasSeleccionadas() {
		return tblDeposito.getSelectedRowCount();
	}
	// metodo que instancia al objeto tabla de la pantalla Deposito, este metodo retorna un objeto tabla
	private JTable getTblDeposito() {
		if(tblDeposito == null) {
			DefaultTableModel tblDepositoModel = 
					new DefaultTableModel(
							new String[][] {},
							new String[] { "Código", "Nombre","Cantidad Estantes","Cantidad Paletas" });
			tblDeposito = new JTable();
			tblDeposito.setModel(tblDepositoModel);
		}
		return tblDeposito;
	}
	// Metodo que permite la eliminacion de una determinada fila directamente de la tabla
	public void eliminarFilaSeleccionada(int i) {
		
		DefaultTableModel modelo = (DefaultTableModel) this.tblDeposito.getModel();

		modelo.removeRow(i);	
	}
	//Retorna el numero de la fila que ha sido seleccionada por el usuario sobre la tabla
	public int getFilaSeleccionada(){
		
		return this.tblDeposito.getSelectedRow();
	}

}
